package com.sky.service;

import cn.mybatis.mp.core.mybatis.mapper.context.Pager;
import com.sky.dto.BookRatingDTO;
import com.sky.vo.BookRatingVO;

public interface UserbookratingsService {
    
    /**
     * 用户添加图书评分和评论
     * @param bookRatingDTO 评分信息
     */
    void addRating(BookRatingDTO bookRatingDTO);
    
    /**
     * 修改用户评分和评论
     * @param bookRatingDTO 评分信息
     */
    void updateRating(BookRatingDTO bookRatingDTO);
    
    /**
     * 删除用户评分和评论
     * @param ratingId 评分ID
     */
    void deleteRating(Integer ratingId);
    
    /**
     * 获取指定图书的所有评分和评论（分页）
     * @param bookId 图书ID
     * @param page 页码
     * @param pageSize 每页数量
     * @return 评分评论分页列表
     */
    Pager<BookRatingVO> getBookRatings(Integer bookId, Integer page, Integer pageSize);
    
    /**
     * 获取用户的所有评分和评论（分页）
     * @param userId 用户ID
     * @param page 页码
     * @param pageSize 每页数量
     * @return 评分评论分页列表
     */
    Pager<BookRatingVO> getUserRatings(Integer userId, Integer page, Integer pageSize);
    
    /**
     * 获取指定图书的平均评分
     * @param bookId 图书ID
     * @return 平均评分
     */
    Double getAverageRating(Integer bookId);
}
